package top.simonby.iron.plugin.data.jpa.query;

import java.lang.annotation.*;

/**
 * 参考https://www.cnblogs.com/hhhshct/p/9476542.html查询实体动态拼接Specification
 *
 * @author Simon
 * @date 2020/4/23 20:49
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface SpecQuery {

    /**
     * 数据库中字段名,默认为空字符串,则Query类中的字段要与数据库中字段一致,驼峰大写，重写实现getFieldName
     *
     * @return
     */
    String column() default "";

    /**
     * equal, like, gt, lt...
     *
     * @return
     */
    SpecMatch func() default SpecMatch.equal;

    /**
     * object是否可以为null
     *
     * @return
     */
    boolean nullable() default false;

    /**
     * 字符串是否可为空
     *
     * @return
     */
    boolean employable() default false;

}
